<script>
	import check from './utils/checkupdate'
	import { getSpCount } from '@/api/flow.js'
	export default {
		onLaunch: function() {
			let this_ = this
			// console.log('App Launch')
			const updateManager = wx.getUpdateManager()
			
			updateManager.onCheckForUpdate(function (res) {
			  // 请求完新版本信息的回调
			  console.log(res.hasUpdate)
			})
			
			updateManager.onUpdateReady(function () {
			  wx.showModal({
			    title: '更新提示',
			    content: '新版本已经准备好，是否重启应用？',
			    success(res) {
			      if (res.confirm) {
			        // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
			        updateManager.applyUpdate()
			      }
			    }
			  })
			})
			
			updateManager.onUpdateFailed(function () {
			    wx.showModal({
			        title: '更新失败',
			        content: '新版本下载失败,请稍后再试。',
			        showCancel: false
			    })
			})
			// #ifdef APP-PLUS
			/* 启动广告页 */
			// this.advertisement()
			 //离线推送-点击信息
			plus.push.addEventListener("click", async function(msg) {
				setTimeout(function() {
					uni.navigateTo({
						url: msg.payload
					})
				}, 1000)
				plus.push.clear();
			}, false);
			//监听接收透传消息事件
			plus.push.addEventListener('receive', function(message) { 
				this_.getSpNum()
			}, false);
			/* 接收消息通知并跳转到tab页面 */
			uni.onPushMessage(res => {
				if (res.type === 'click') {
					if (res.data.payload) {
						// onLaunch 生命周期里，页面跳转有问题,跳不过去
						// 应该是页面还没加载，加上定时后，就可以了；
						setTimeout(() => {
							uni.navigateTo({
								url: res.data.payload
							})
						}, 1000)
					}
				}
				if (res.type === 'receive') {
					// 如果你希望当应用在线时，也通过“通知栏消息”，可以创建通知栏消息来提醒用户
					uni.createPushMessage({
						title: res.data.title,
						content: res.data.content,
						payload: res.data.payload
					})
				}
			})
			// #endif
		},
		onShow: function() {
			console.log('App Show')
			// #ifdef APP-PLUS
			/* app更新 */
			check.check()
			if(uni.getStorageSync('isLogined')==false) return
			this.getSpNum()
			uni.getPushClientId({
				success: (res) => {
					let push_clientid = res.cid
					console.log('getPushClientId获取：',push_clientid);
				},
				fail: (err) => {
					console.log(err);
				}
			})
			// #endif
		},
		onHide: function() {
			console.log('App Hide')
		},
		methods:{
			advertisement(){
				//app启动时打开启动广告页
				var w = plus.webview.open(
					'hybrid/html/advertise/advertise.html',
					'本地地址',
					{ top: 0, bottom: 0, zindex: 999 },
					'fade-in',
					500
				);
				//设置定时器，4s后关闭启动广告页
				setTimeout(function() {
					plus.webview.close(w);
					/* app更新 */
					check.check()
				}, 4000);
			},
			async getSpNum(){
				const { data } = await getSpCount();
				if(data.code == 200){
					plus.runtime.setBadgeNumber(data.data);
				}
			},
		}
	}
</script>

<style lang="scss">
	@import "@/uni_modules/uview-ui/index.scss";
	@import './main.scss';
</style>
